var t = Object.setPrototypeOf || { __proto__: [] }
instanceof Array && function(t, e) { t.__proto__ = e } || function(t, e) {
    for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i])
};
window.__extends = window.__extends || function(e, i) {
    function n() { this.constructor = e }
    t(e, i), e.prototype = null === i ? Object.create(i) : (n.prototype = i.prototype, new n)
};
window.__assign = Object.assign || function(t) {
    for (var e, i = 1, n = arguments.length; i < n; i++)
        for (var r in e = arguments[i]) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]);
    return t
};
window.__rest = window.__rest || function(t, e) {
    var i = {};
    for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e.indexOf(n) < 0 && (i[n] = t[n]);
    if (null != t && "function" == typeof Object.getOwnPropertySymbols) { var r = 0; for (n = Object.getOwnPropertySymbols(t); r < n.length; r++) e.indexOf(n[r]) < 0 && Object.prototype.propertyIsEnumerable.call(t, n[r]) && (i[n[r]] = t[n[r]]) }
    return i
};
window.__decorate = window.__decorate || function(t, e, i, n) {
    var r, s = arguments.length,
        a = s < 3 ? e : null === n ? n = Object.getOwnPropertyDescriptor(e, i) : n;
    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(t, e, i, n);
    else
        for (var o = t.length - 1; o >= 0; o--)(r = t[o]) && (a = (s < 3 ? r(a) : s > 3 ? r(e, i, a) : r(e, i)) || a);
    return s > 3 && a && Object.defineProperty(e, i, a), a
};
window.__param = window.__param || function(t, e) {
    return function(i, n) { e(i, n, t) }
};
window.__metadata = window.__metadata || function(t, e) {
    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(t, e)
};
window.__awaiter = window.__awaiter || function(t, e, i, n) {
    return new(i || (i = Promise))(function(r, s) {
        function a(t) { try { l(n.next(t)) } catch (e) { s(e) } }

        function o(t) { try { l(n.throw(t)) } catch (e) { s(e) } }

        function l(t) {
            var e;
            t.done ? r(t.value) : (e = t.value, e instanceof i ? e : new i(function(t) { t(e) })).then(a, o)
        }
        l((n = n.apply(t, e || [])).next())
    })
};
window.__generator = window.__generator || function(t, e) {
    var i, n, r, s, a = { label: 0, sent: function() { if (1 & r[0]) throw r[1]; return r[1] }, trys: [], ops: [] };
    return s = { next: o(0), throw: o(1), return: o(2) }, "function" == typeof Symbol && (s[Symbol.iterator] = function() { return this }), s;

    function o(t) { return function(e) { return l([t, e]) } }

    function l(s) {
        if (i) throw new TypeError("Generator is already executing.");
        for (; a;) try {
            if (i = 1, n && (r = 2 & s[0] ? n.return : s[0] ? n.throw || ((r = n.return) && r.call(n), 0) : n.next) && !(r = r.call(n, s[1])).done) return r;
            switch (n = 0, r && (s = [2 & s[0], r.value]), s[0]) {
                case 0:
                case 1:
                    r = s;
                    break;
                case 4:
                    return a.label++, { value: s[1], done: !1 };
                case 5:
                    a.label++, n = s[1], s = [0];
                    continue;
                case 7:
                    s = a.ops.pop(), a.trys.pop();
                    continue;
                default:
                    if (!(r = (r = a.trys).length > 0 && r[r.length - 1]) && (6 === s[0] || 2 === s[0])) { a = 0; continue }
                    if (3 === s[0] && (!r || s[1] > r[0] && s[1] < r[3])) { a.label = s[1]; break }
                    if (6 === s[0] && a.label < r[1]) { a.label = r[1], r = s; break }
                    if (r && a.label < r[2]) { a.label = r[2], a.ops.push(s); break }
                    r[2] && a.ops.pop(), a.trys.pop();
                    continue
            }
            s = e.call(t, a)
        } catch (o) { s = [6, o], n = 0 } finally { i = r = 0 }
        if (5 & s[0]) throw s[1];
        return { value: s[0] ? s[1] : void 0, done: !0 }
    }
};
window.__exportStar = window.__exportStar || function(t, e) { for (var i in t) "default" === i || Object.prototype.hasOwnProperty.call(e, i) || __createBinding(e, t, i) };
window.__createBinding = window.__createBinding || (Object.create ? function(t, e, i, n) {
    void 0 === n && (n = i), Object.defineProperty(t, n, { enumerable: !0, get: function() { return e[i] } })
} : function(t, e, i, n) { void 0 === n && (n = i), t[n] = e[i] });
window.__values = window.__values || function(t) {
    var e = "function" == typeof Symbol && Symbol.iterator,
        i = e && t[e],
        n = 0;
    if (i) return i.call(t);
    if (t && "number" == typeof t.length) return { next: function() { return t && n >= t.length && (t = void 0), { value: t && t[n++], done: !t } } };
    throw new TypeError(e ? "Object is not iterable." : "Symbol.iterator is not defined.")
};
window.__read = window.__read || function(t, e) {
    var i = "function" == typeof Symbol && t[Symbol.iterator];
    if (!i) return t;
    var n, r, s = i.call(t),
        a = [];
    try {
        for (;
            (void 0 === e || e-- > 0) && !(n = s.next()).done;) a.push(n.value)
    } catch (o) { r = { error: o } } finally { try { n && !n.done && (i = s.return) && i.call(s) } finally { if (r) throw r.error } }
    return a
};
window.__spread = window.__spread || function() { for (var t = [], e = 0; e < arguments.length; e++) t = t.concat(__read(arguments[e])); return t };
window.__spreadArrays = window.__spreadArrays || function() {
    for (var t = 0, e = 0, i = arguments.length; e < i; e++) t += arguments[e].length;
    var n = Array(t),
        r = 0;
    for (e = 0; e < i; e++)
        for (var s = arguments[e], a = 0, o = s.length; a < o; a++, r++) n[r] = s[a];
    return n
};
window.__await = window.__await || function(t) { return this instanceof __await ? (this.v = t, this) : new __await(t) };
window.__asyncGenerator = window.__asyncGenerator || function(t, e, i) {
    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
    var n, r = i.apply(t, e || []),
        s = [];
    return n = {}, a("next"), a("throw"), a("return"), n[Symbol.asyncIterator] = function() { return this }, n;

    function a(t) { r[t] && (n[t] = function(e) { return new Promise(function(i, n) { s.push([t, e, i, n]) > 1 || o(t, e) }) }) }

    function o(t, e) {
        try {
            (i = r[t](e)).value instanceof __await ? Promise.resolve(i.value.v).then(l, c) : h(s[0][2], i)
        } catch (n) { h(s[0][3], n) }
        var i
    }

    function l(t) { o("next", t) }

    function c(t) { o("throw", t) }

    function h(t, e) { t(e), s.shift(), s.length && o(s[0][0], s[0][1]) }
};
window.__asyncDelegator = window.__asyncDelegator || function(t) {
    var e, i;
    return e = {}, n("next"), n("throw", (function(t) { throw t })), n("return"), e[Symbol.iterator] = function() { return this }, e;

    function n(n, r) { e[n] = t[n] ? function(e) { return (i = !i) ? { value: __await(t[n](e)), done: "return" === n } : r ? r(e) : e } : r }
};
window.__asyncValues = window.__asyncValues || function(t) {
    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
    var e, i = t[Symbol.asyncIterator];
    return i ? i.call(t) : (t = "function" == typeof __values ? __values(t) : t[Symbol.iterator](), e = {}, n("next"), n("throw"), n("return"), e[Symbol.asyncIterator] = function() { return this }, e);

    function n(i) { e[i] = t[i] && function(e) { return new Promise(function(n, s) { r(n, s, (e = t[i](e)).done, e.value) }) } }

    function r(t, e, i, n) { Promise.resolve(n).then((function(e) { t({ value: e, done: i }) }), e) }
};
window.__makeTemplateObject = window.__makeTemplateObject || function(t, e) {
    return Object.defineProperty ? Object.defineProperty(t, "raw", { value: e }) : t.raw = e, t
};
var e = Object.create ? function(t, e) {
    Object.defineProperty(t, "default", { enumerable: !0, value: e })
} : function(t, e) { t.default = e };
window.__importStar = window.__importStar || function(t) {
    if (t && t.__esModule) return t;
    var i = {};
    if (null != t)
        for (var n in t) "default" !== n && Object.prototype.hasOwnProperty.call(t, n) && __createBinding(i, t, n);
    return e(i, t), i
};
window.__importDefault = window.__importDefault || function(t) {
    return t && t.__esModule ? t : { default: t }
};
window.__classPrivateFieldGet = window.__classPrivateFieldGet || function(t, e) {
    if (!e.has(t)) throw new TypeError("attempted to get private field on non-instance");
    return e.get(t)
};
window.__classPrivateFieldSet = window.__classPrivateFieldSet || function(t, e, i) {
    if (!e.has(t)) throw new TypeError("attempted to set private field on non-instance");
    return e.set(t, i), i
}